"""
!/usr/bin/env python
-*- coding: utf-8 -*-
@Author  : MarkJia
@Site    : 
@File    : 16、fixture的作用域.py
"""

#  ===================   fixture的级别: 默认为函数级别 scope=function  =========================

"""
fixture的作用域：由低到高
function: 函数级    每个函数或者方法都会调用
class :   类级别    每个测试类只运行一次
module:   模块级    每一个.py文件 调用一次
package : 包级别    每一个python只调用一次 （暂不支持）
session : 会话级    每次会话只运行一次，会话中所有的类、方法 、模块都共享这个方法
"""

import pytest


# 一：定义一个登录的fixture，尽量避免以test_开头

@pytest.fixture(scope="class")
def loginin():
    print('进行登录操作')
    yield
    print('进行登出操作')


# 二：以下函数都需要先登录，调用时直接传入login
"""
16、fixture的作用域.py::test_serch 进行登录操作
PASSED                                [100%]搜素
进行登出操作
"""


def test_serch(loginin):
    print('搜素')


def test_cart(loginin):
    print('购物车')


def test_order(loginin):
    print('下单')


class Testdemo:
    def test_case1(self, loginin):
        print('case1')

    def test_case2(self, loginin):
        print('case2')
